﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StyleMVVM.DependencyInjection
{
	/// <summary>
	/// Defines properties that are specific to the property that is being imported
	/// </summary>
	public interface IInjectionTargetInfo
	{
		/// <summary>
		/// This is the type that is being injected into 
		/// </summary>
		Type InjectionType { get; set; }

		/// <summary>
		/// The PropertyInfo or ParameterInfo that is being injected
		/// </summary>
		object InjectionTarget { get; set; }

		/// <summary>
		/// Attributes associated with the target PropertyInfo or ParameterInfo that is provided
		/// </summary>
		object[] InjectionTargetAttributes { get; set; }
	}
}